﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace PropietarioService
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "PropietarioService" en el código, en svc y en el archivo de configuración a la vez.
    public class PropietarioService : IPropietarioService
    {

        public void RegistrarPropietario(string nombre, string apellido, int torre, int dpto, int piso)
        {
            using (var dc = new AREASCOMUNESBDDataContext())
            {
                //Se cre la instancia del propietario a ser insertada
                Propietario pro = new Propietario()
                {

                    Apellido = apellido,
                    Nombre = nombre,
                    Torre = torre,
                    Dpto = dpto,
                    Piso = piso
                };

                //Se manda a guardar en memoria para insertar
                dc.Propietario.InsertOnSubmit(pro);

                //Se Hace comit de los cambios
                dc.SubmitChanges();
            }
        }

        public Propietario ObtenerPropietario(int torre, int dpto)
        {
            List<Propietario> list = new List<Propietario>();

            //Se recupera lista d epropietarios
            var lstProps = ListarPropietarios();

            //Se transforma lista de propietarios para trabajar con ella
            Propietario propResultado = null;
            foreach(Propietario prop in lstProps)
            {
                if (prop.Torre == torre && prop.Dpto == dpto)
                {
                    propResultado = prop;
                }                
            }
            return propResultado;
        }

        public List<Propietario> ListarPropietarios()
        {
            List<Propietario> lstPropietarios;

            using (var dc = new AREASCOMUNESBDDataContext())
            {
                dc.ObjectTrackingEnabled = false;

                //Obtenemos la lista de propietarios
                lstPropietarios = dc.Propietario.ToList();
            }

            return lstPropietarios;
        }
    }
}
